package com.dys.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @Author: 疾风
 * @ClassName: Servlet02
 * @Description: 响应重定向中的路径问题
 * @CreateDate: 2024/09/20
 * @Version: v1.0.0
 */
// @WebServlet(urlPatterns = "/c/c2/servlet03.do")
@WebServlet(urlPatterns = "/servlet03.do")
public class Servlet03 extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("执行Servlet03内的service方法......");
        /*
         * 相对路径 相对于urlPatterns定义的路径
         * 绝对路径 :以项目部署路径为基准路径 (webapps)
         * 响应重定向的绝对路径中,要加项目部署名,除非当前项目没有给定部署名
         *
         * */
        // 相对路径访问a1.html
        // 响应重定向写法
        // resp.sendRedirect("../../a/a2/a1.html");
        // resp.sendRedirect("a/a2/a1.html");
        // 绝对路径写法
        // resp.sendRedirect("/servlet_app07_Web_exploded/a/a2/a1.html");
        // 动态获取项目的部署名字
        ServletContext servletContext = this.getServletContext();
        String contextPath = servletContext.getContextPath();
        resp.sendRedirect(contextPath + "/a/a2/a1.html");
    }
}
